#include "Particle_Adhesive.h"

#include "ParticleContext.h"

using namespace ParticleEngine;

Particle_Adhesive::Particle_Adhesive()
{}

Particle_Adhesive::Particle_Adhesive(ParticleContext*const Context, const ParticleIndex P0, Vec<2, float> Position)
{
	Context->Particle_Position[P0] = Position;
	Context->Particle_Acceleration[P0] = Vec<2, float>(0.f, 0.f);
	Context->Particle_Velocity[P0] = Vec<2, float>(0.f, 0.f);

	Context->Particle_BrownMotion[P0] = 0.f;
	Context->Particle_GridPos[P0] = Vec<2, ParticleIndex>((ParticleIndex)Position.X, (ParticleIndex)Position.Y);

	Context->Particle_Adhesive[P0] = true;
	Context->Particle_AdhesionRebind[P0] = false;
	Context->Particle_AdhesionCount[P0] = 0;
	//Context->Particle_AdhesionParticle[P];
	Context->Particle_AdhesionElasticity[P0] = 0.1f;
	//Context->Particle_LockStatus[P] = false;


	Context->Particle_HeatConduct[P0] = 1.f;
	Context->Particle_HeatVolume[P0] = 0.f;
	Context->Particle_HeatAdjust[P0] = 0.f;


	Context->Particle_Color[P0] = ColorRGBA<uint8_t>(255, 127, 0, 255);
}

void Particle_Adhesive::Sole(ParticleContext*const Context, ParticleIndex ParticleIndex)
{
}

void Particle_Adhesive::Interaction(const ParticleIndex P0, const ParticleIndex P1, const Vec<2, float> Space, const float DistanceSquared)
{
}
